/*******************************************************************************
 * Classe Options : classe de création et de gestion du panneau des options
 ******************************************************************************/

package Panneaux;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import prjintwg.Fenetre;
import prjintwg.Jeu;

/**
 *
 * @author W&G
 */
public class Options extends JPanel{
    //bonton renvoyant à l'écran précédent
    private JButton btnRetour = new JButton("Retour");
    private BufferedImage image;//Image de fond d'écran
    private BoutonPresse boutonPresse = new BoutonPresse();
    private Fenetre fenetre;//Fenetre du jeu
    //bouton de validation des options
    private JButton btnValider = new JButton("Valider");
    //Étiquette du vent
    private JLabel lblVent = new JLabel(" Vent");
    //champ de texte contenant la valeur du vent
    private JTextField txtVent= new JTextField();
    //Étiquette de la gravité
    private JLabel lblGravite = new JLabel("Gravité");
    //champ de texte contenant la valeur de la gravité
    private JTextField txtGravite = new JTextField();
    //Checkbox activant ou désactivant l'arc-en-ciel
    private JCheckBox ckbArcEnCiel = new JCheckBox("Arc en ciel");
/**
 * Contructeur d'Options
 * @param fenetre fenetre contenant le programme
 */
    public Options(Fenetre fenetre){
        this.setLayout(null);
        try {
            image = ImageIO.read(new File("lune.jpg"));
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
      this.fenetre = fenetre;
      btnRetour.setForeground(Color.white);
      btnRetour.setBackground(Color.black);
      btnRetour.setBounds(900, 530, 120, 20);
      btnRetour.addActionListener(boutonPresse);
      this.add(btnRetour);
      btnValider.setForeground(Color.white);
      btnValider.setBackground(Color.black);
      btnValider.setBounds(760, 530, 120, 20);
      btnValider.addActionListener(boutonPresse);
      this.add(btnValider);
      lblVent.setForeground(Color.white);
      lblVent.setBackground(Color.black);
      lblVent.setBounds(350, 150, 50, 20);
      this.add(lblVent);
      txtVent.setBounds(400, 150, 50, 20);
      this.add(txtVent);
      lblGravite.setForeground(Color.white);
      lblGravite.setBackground(Color.black);
      lblGravite.setBounds(350, 200, 50, 20);
      this.add(lblGravite);
      txtGravite.setBounds(400, 200, 50, 20);
      this.add(txtGravite);
      ckbArcEnCiel.setBackground(Color.black);
      ckbArcEnCiel.setForeground(Color.white);
      ckbArcEnCiel.setBounds(400, 250, 85, 20);
      this.add(ckbArcEnCiel);
    }

        @Override
    public void paintComponent(Graphics g) {//dessine le panneau
        g.drawImage(image, 0, 0, 1072, 603, null);
    }
    /**
     * Classe de gestion des evenements
     */
    class BoutonPresse implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            if (ae.getSource() == btnRetour) {
                fenetre.afficherMenuPrincipal();
            }if(ae.getSource() == btnValider){                
                try{                
                    Jeu.setGravite(Double.parseDouble(txtGravite.getText()));
                    Jeu.setVent(Double.parseDouble(txtVent.getText()));                    
                    if(ckbArcEnCiel.isSelected()){
                    fenetre.getPnlJeu().setArcEnCiel(true);
                    }else{
                    fenetre.getPnlJeu().setArcEnCiel(false);
                    }
                    fenetre.afficherMenuPrincipal();
                }catch(Exception e){
                JOptionPane.showMessageDialog(null, "Veuillez remplir les zones"
                        + " de texte avec des valeurs numériques");
                }
            }
        }
    }
}
